﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using WBGModel;
using System.Data;

namespace WBGDal
{
    public class DalTelefone : ICRUD
    {
        public List<ModelTelefone> Listar()
        {
            return Listar("");
        }

        public List<ModelTelefone> Listar(string filtro)
        {
            String cmd = "SELECT Telefone.* FROM Telefone" + (filtro.CompareTo("") == 0 ? "" : " WHERE " + filtro);
            return ConvertToList(UtilBanco.ExecComRetorno(cmd));
        }

        private List<ModelTelefone> ConvertToList(DataTable resultSet)
        {
            List<ModelTelefone> lst = new List<ModelTelefone>();
            for (int i = 0; i < resultSet.Rows.Count; i++)
            {
                DataRow dr = resultSet.Rows[i];
                ModelTelefone telefone = new ModelTelefone();
                telefone.idTelefone = Convert.ToInt32(dr["idTelefone"]);
                telefone.idPessoa = Convert.ToInt32(dr["idPessoa"]);
                telefone.contato = dr["contato"].ToString();
                telefone.observacao = dr["obs"].ToString();
                telefone.DDD = Convert.ToInt16(dr["DDD"]);
                telefone.numero = dr["numero"].ToString();
                telefone.ativo = Convert.ToBoolean(dr["ativo"]);
                lst.Add(telefone);
            }
            return lst;
        }

        public void Inserir(ModelTelefone obj)
        {
            String cmd = String.Format("INSERT INTO Telefone (contato,obs,DDD,numero,ativo,idPessoa) VALUES ('{0}','{1}','{2}','{3}','{4}','{5}')", obj.contato, obj.observacao, obj.DDD, obj.numero, obj.ativo, obj.idPessoa);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Alterar(ModelTelefone obj)
        {
            string cmd = String.Format("UPDATE Telefone SET contato='{0}', obs='{1}', DDD='{2}', numero='{3}', ativo='{4}', idPessoa='{5}' WHERE idTelefone={6}", obj.contato, obj.observacao, obj.DDD, obj.numero, obj.ativo, obj.idPessoa, obj.idTelefone);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Deletar(int id)
        {
            String cmd = String.Format("DELETE FROM Telefone WHERE idTelefone={0}", id);
            UtilBanco.ExecSemRetorno(cmd);
        }
    }
}
